Documents may be related to other documents. The relationships may include, for example, a document being attached to another document(s), a document having an attachment(s), a document referring to another document(s), a document being referred to by another document(s), and so on. The same attachment may be attached to multiple parents, and one parent may have multiple attachments. Similarly, one document may refer to multiple documents and multiple documents may refer to one document. Thus, the relationships between documents may be m:n relationships.
When a user electronically searches for certain documents that may be relevant to a query, the user may anticipate that related documents (e.g., attachments) are also being considered by their search system. However, this may not be the case, and, if it is the case, the consideration may be inefficient in terms of memory consumed, index space consumed, time consumed, and so on.
In one conventional attempt to provide some functionality for expanded searching, a parent document may have physically included all its related documents and then the parent document may have been indexed. This approach consumed extra index space and caused much duplication. This approach was also unwieldy since recreating and re-indexing of the parent document would be required each time any of the related documents changed.
Another conventional approach to provide some functionality for expanded searching involved indexing documents separately and performing a search over all indexed documents, regardless of indications of any documents being related. Using this approach, no single search based on any single query could provide the expanded search of the virtual document the user might consider is being searched. No single search could succeed because there would be no single “composite” document, either physical or logical, to search.